This invention relates in general to non-volatile memory systems and in particular to such systems with self-testing capability.
Various commercially available non-volatile memory cards that are becoming popular are extremely small and have different mechanical and/or electrical interfaces. Examples include the related MultiMediaCard (“MMC”) and Secure Digital (“SD”) memory cards that are available from SanDisk Corporation of Sunnyvale, Calif., assignee of the present application. There are other cards that conform to standards of the International Organization for Standardization (“ISO”) and the International Electrotechnical Commission (“IEC”), an example that is widely implemented being known as the ISO/IEC 7816 standard.
The physical and electrical specifications for the MMC are given in “The MultiMediaCard System Specification” that is updated and published from time-to-time by the MultiMediaCard Association (“MMCA”) of Cupertino, Calif. Versions 2.11 and 2.2 of that Specification, dated June 1999 and January 2000, respectively, are expressly incorporated herein by this reference. MMC products are described in a “MultiMediaCard Product Manual,” Revision 2, dated April 2000, published by SanDisk corporation, which Manual is expressly incorporated herein by this reference. Certain aspects of the electrical operation of the MMC products are also described in co-pending patent applications of Thomas N. Toombs and Micky Holtzman, Ser. No. 09/185,649 (issued as U.S. Pat. No. 6,279,114) and Ser. No. 09/186,064, both filed Nov. 4, 1998, and assigned to SanDisk Corporation. The physical card structure and a method of manufacturing it are described in U.S. Pat. No. 6,040,622, assigned to SanDisk Corporation. Both of these applications and patent are also expressly incorporated herein by this reference.
The newer SD Card is similar to the MMC card, having the same size except for an increased thickness that accommodates an additional memory chip. A primary difference between them is that the SD Card includes additional data contacts in order to enable faster data transfer between the card and a host. The other contacts of the SD Card are the same as those of the MMC card in order that sockets designed to accept the SD Card will also accept the MMC card. The electrical interface with the SD card is further made to be, for the most part, backward compatible with the MMC product described in version 2.11 of its specification referenced above, in order that few changes to the operation of the host need be made in order to accommodate both types of card. Certain aspects of the SD card are described in U.S. patent application Ser. No. 09/641,023, filed Aug. 17, 2000, which application is incorporated herein by this reference.
Cards made according to the ISO/IEC 7816 standard are of a different shape, have surface contacts in different positions, and a different electrical interface than the MMC and SD Cards. The ISO/IEC 7816 standard has the general title of “Identification cards-Integrated Circuit(s) Cards with Contacts,” and consists of parts 1-10 that carry individual dates from 1994 through 2000. This standard, copies of which are available from the ISO/IEC in Geneva, Switzerland, is expressly incorporated herein by this reference. ISO/IEC 7816 cards are particularly useful in applications where data must be stored in a secure manner that makes it extremely difficult or impossible for the data to be read in an unauthorized manner. The small ISO/IEC 7816 cards are commonly used in cellular telephones, among other applications.
In a typical configuration for the above non-volatile memory cards, the card includes a non-volatile memory array and a processor based controller that performs the memory control and host interface function. The memory array and processor based controller are usually encapsulated so that the card is robust when used in many different environments.
When there is a failure in a non-volatile memory card, such as in any of the important blocks that disables the host interface, there may be no way to figure out the problem without disassembling the card and using special test equipment. There are several different “failure” types:                Design problem (“bug”)—The hardware/firmware (HW/FW) in the card is not doing whatever it was designed to do.        Production problem—The card was not manufactured properly.        End of life (EOL) problems—The card was operating normally at the beginning but, as a “natural” curse of life it is not working any more.        
The assumption is that the bulk of the design problems will be debugged during design phase when the product is not in its final form factor package. Therefore during the design phase, several additional interfaces and plenty of test equipment are available for one to work with. However, manufacturing and EOF issues (as well as the few last bugs) are a fact of life in the non-volatile memory industry and will happen after the product is assembled, making it very hard to debug.
As a solution to the above-identified problem, test interfaces are designed into the card controller memory and printed circuit board (PCB). In order to access these interfaces the product must be de-lidded and in many cases disassembled and reassembled as a collection of discrete components on test boards. This process is both tedious and not reliable. It may also result in damaging the product and losing the data required for debugging. A particular problem is presented when the controller and/or firmware (“FW”) are not functioning properly. In such event, it may be difficult to retrieve diagnostic data from the system.
None of the above-described conventional systems is entirely satisfactory. It is therefore desirable to provide a non-volatile memory system with self testing capability where the above-described difficulties are alleviated.